package com.kai.steering.common.web.properties;

import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.NestedConfigurationProperty;

/**
 * @ Author     ：LiuKai.
 * @ Date       ：Created in 14:28 2022-3-10
 * @ Description：AOP配置属性
 * @ Modified By：
 * @Version:
 */
@Data
@ConfigurationProperties(prefix = "uimp.aop")
public class UimpAopProperties {

    /**
     * 请求路径Filter配置
     */
    @NestedConfigurationProperty
    private LogAopConfig log = new LogAopConfig();


    /**
     * 系统标识
     */
    String sysId = "SYS";


    @Data
    public static class AopConfig {
        /**
         * 是否启用
         */
        private boolean enabled;

    }

    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class LogAopConfig extends AopConfig {

        /**
         * 日志输出类型：print-type
         * 1. 请求和响应分开，按照执行顺序打印
         * 2. ThreadLocal线程绑定，方法执行结束时，连续打印请求和响应日志
         * 3. ThreadLocal线程绑定，方法执行结束时，同时打印请求和响应日志
         */
        int printType = 1;

        /**
         * 请求日志在控制台是否格式化输出，local环境建议开启，服务器环境设置为false
         */
        private boolean requestLogFormat = true;

        /**
         * 响应日志在控制台是否格式化输出，local环境建议开启，服务器环境设置为false
         */
        private boolean responseLogFormat = true;

    }

}
